<?php

class Impresion_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    public function infoGeneral($visitaId) {
        $parametros = array();
        $sql = "select 
                ava.avaluoNumero
                ,ciu.ciudadNombre
                ,vi.visitaSolicitante
                ,dep.dptoNombre
                ,vi.visitaVereda
                ,vi.visitaVeredaNombre
                ,tpIn.tipInmuebleNombre 
                ,vi.visitaPropietario
                ,vi.visitaFechaVisita
                ,vi.visitaFechaAvaluo
        ,via.viaNombre
        ,vi.visitaLocalizacion
        ,vi.visitaCaracteristicas
        ,ep.estadoPredNombre
        ,vi.visitaServicioOtro1
        ,vi.visitaUsoOtro1
        ,vi.visitaAltura
        ,vi.visitaOtroPiso
        ,vi.visitaEstratificacion
        ,vi.visitaNumCatastral
        ,vi.visitaEscrituraPublica
        ,vi.visitaFolioMatricula
        ,vi.visitaNormaUsoSuelo
        ,vi.visitaTerreno
        ,vi.visitaPromedio
        ,u.unidadNombre
        ,vi.visitaLinderoNorte
        ,vi.visitaLinderoSur
        ,vi.visitaLinderoOriente
        ,vi.visitaLinderoOccidente
        ,vi.visitaFrente
        ,u1.unidadNombre as unidadFrente
        ,u2.unidadNombre as unidadFondo
        ,vi.visitaFondo
        ,vi.visitaViaAcceso
        ,via1.viaId as viaParaAcceso
        ,ep1.estadoPredId as estadoAcceso
        ,vi.visitaServicioOtro2
        ,vi.visitaUsoOtro2
        ,vi.visitaCaracCanios
        ,vi.visitaCaracVallados
        ,vi.visitaCaracServi
        ,vi.visitaCaracPuentes
        ,vi.visitaCaracOtros
        ,vi.visitaMetodologiaAvaluo
        ,vi.visitaInvesEconomica
        ,vi.visitaConsideraciones
        ,vi.visitaFormaGeo
        ,vi.visitaCaracZanjones
                from avaluos ava 
                inner join visitas vi on vi.avaluoId = ava.avaluoId
                inner join ciudades ciu on ciu.ciudadId = vi.ciudadId and ciu.ciudadEstado = 'A'
                inner join departamentos dep on dep.dptoId = ciu.dptoId and dep.dptoEstado = 'A'
                inner join tiposInmuebles tpIn on tpIn.tipInmuebleId = vi.tipInmuebleId and tpIn.tipInmuebleEstado = 'A'
                inner join vias via on via.viaId = vi.viaIdAcceso and via.viaEstado = 'A'
                inner join vias via1 on via1.viaId = vi.viaId and via1.viaEstado = 'A'
                inner join estadosPredios ep on ep.estadoPredId = vi.estadoPredIdViaAcceso and ep.estadoPredEstado = 'A'
                inner join estadosPredios ep1 on ep1.estadoPredId = vi.estadoViaId and ep1.estadoPredEstado = 'A'
                inner join unidades u on u.unidadId = vi.unidadId and u.unidadEstado = 'A'
                inner join unidades u1 on u1.unidadId = vi.unidadIdFrente and u1.unidadEstado = 'A'
                inner join unidades u2 on u2.unidadId = vi.unidadIdFondo and u2.unidadEstado = 'A'
                where vi.visitaId = $visitaId";
        $result = $this->db->query($sql);
        if ($result->num_rows() > 0) {
            $result = $result->result();
            $parametros["result"] = "1";
            $parametros["fichaNumero"] = $result[0]->avaluoNumero;
            $parametros["visitaPromedio"] = $result[0]->visitaPromedio;
            $parametros["municipio"] = $result[0]->ciudadNombre;
            $parametros["dptoNombre"] = $result[0]->dptoNombre;
            $parametros["visitaSolicitante"] = $result[0]->visitaSolicitante;
            $parametros["visitaVereda"] = $result[0]->visitaVereda;
            $parametros["visitaFormaGeo"] = $result[0]->visitaFormaGeo;
            $parametros["visitaCaracZanjones"] = $result[0]->visitaCaracZanjones;
            $parametros["visitaVeredaNombre"] = $result[0]->visitaVeredaNombre;
            $parametros["tipInmuebleNombre"] = $result[0]->tipInmuebleNombre;
            $sql = "SELECT uIa1.usoInmuActualNombre,if(uIa1.usoInmuActualNombre = uIa.usoInmuActualNombre,'true','false') as estado FROM usosInmueblesVisitas uIv
                    inner join usosInmueblesActual uIa on uIa.usoInmuActualId = uIv.usoInmuActualId,usosInmueblesActual uIa1
                    where uIv.visitaId = $visitaId and uIa.usoInmuActualEstado = 'A' and uIv.usoInmuVisitaTipo = 'Actual' group by uIa1.usoInmuActualNombre order by uIa1.usoInmuActualNombre";
            $parametros["usoActual"] = $this->db->query($sql);
            $parametros["visitaPropietario"] = $result[0]->visitaPropietario;
            $parametros["visitaFechaVisita"] = $result[0]->visitaFechaVisita;
            $parametros["visitaFechaAvaluo"] = $result[0]->visitaFechaAvaluo;
            $parametros["visitaLocalizacion"] = $result[0]->visitaLocalizacion;
            $parametros["visitaCaracteristicas"] = $result[0]->visitaCaracteristicas;
            $parametros["viaNombre"] = $result[0]->viaNombre;
            $parametros["estadoPredNombre"] = $result[0]->estadoPredNombre;
            $sql = "select sp1.servPubliNombre,if(sp1.servPubliNombre = sp.servPubliNombre,'true','false') as estado from serviciosPublicosVisitas spv
                    inner join serviciosPublicos sp on spv.servPubliId = sp.servPubliId and sp.servPubliEstado = 'A',serviciosPublicos sp1
                    where spv.visitaId = $visitaId and spv.servPubliVisitaTipo = 'Caracteristica' group by sp1.servPubliNombre order by sp1.servPubliNombre";
            $parametros["serviciosCaract"] = $this->db->query($sql);
            $parametros["visitaServicioOtro1"] = $result[0]->visitaServicioOtro1;
            $sql = "SELECT uIa1.usoInmuActualNombre,if(uIa1.usoInmuActualNombre = uIa.usoInmuActualNombre,'true','false') as estado FROM usosInmueblesVisitas uIv
                    inner join usosInmueblesActual uIa on uIa.usoInmuActualId = uIv.usoInmuActualId,usosInmueblesActual uIa1
                    where uIv.visitaId = $visitaId and uIa.usoInmuActualEstado = 'A' and uIv.usoInmuVisitaTipo = 'Predominante' group by uIa1.usoInmuActualNombre order by uIa1.usoInmuActualNombre";
            $parametros["usoPredominante"] = $this->db->query($sql);
            $parametros["visitaUsoOtro1"] = $result[0]->visitaUsoOtro1;
            $parametros["visitaAltura"] = $result[0]->visitaAltura;
            $parametros["visitaOtroPiso"] = $result[0]->visitaOtroPiso;
            $parametros["visitaEstratificacion"] = $result[0]->visitaEstratificacion;
            $parametros["visitaNumCatastral"] = $result[0]->visitaNumCatastral;
            $parametros["visitaEscrituraPublica"] = $result[0]->visitaEscrituraPublica;
            $parametros["visitaFolioMatricula"] = $result[0]->visitaFolioMatricula;
            $parametros["visitaNormaUsoSuelo"] = $result[0]->visitaNormaUsoSuelo;
            $parametros["visitaTerreno"] = $result[0]->visitaTerreno;
            $parametros["unidadNombre"] = $result[0]->unidadNombre;
            $parametros["visitaLinderoNorte"] = $result[0]->visitaLinderoNorte;
            $parametros["visitaLinderoSur"] = $result[0]->visitaLinderoSur;
            $parametros["visitaLinderoOriente"] = $result[0]->visitaLinderoOriente;
            $parametros["visitaLinderoOccidente"] = $result[0]->visitaLinderoOccidente;
            $sql = "select t.*,u.unidadNombre from topografias t
                    inner join unidades u on u.unidadId = t.unidadId and u.unidadEstado = 'A'
                    inner join visitas v on v.visitaId = t.visitaId where v.visitaId = '$visitaId'";
            $parametros["topografias"] = $this->db->query($sql);
            $parametros["unidadFrente"] = $result[0]->unidadFrente;
            $parametros["unidadFondo"] = $result[0]->unidadFondo;
            $parametros["visitaFrente"] = $result[0]->visitaFrente;
            $parametros["visitaFondo"] = $result[0]->visitaFondo;
            $parametros["visitaViaAcceso"] = $result[0]->visitaViaAcceso;
            $parametros["viaParaAcceso"] = $result[0]->viaParaAcceso;
            $parametros["estadoAcceso"] = $result[0]->estadoAcceso;
            $sql = "select sp1.servPubliNombre,if(sp.servPubliNombre = sp1.servPubliNombre,'true','false') as estado from serviciosPublicosVisitas spv
                    inner join serviciosPublicos sp on sp.servPubliId = spv.servPubliId and sp.servPubliEstado = 'A',serviciosPublicos sp1
                    where spv.servPubliVisitaTipo = 'Predio' and spv.visitaId = $visitaId group by sp1.servPubliNombre order by sp1.servPubliNombre";
            $parametros["serviciosPredio"] = $this->db->query($sql);
            $parametros["visitaServicioOtro2"] = $result[0]->visitaServicioOtro2;
            $sql = "select uia1.usoInmuActualNombre,if(uia.usoInmuActualNombre = uia1.usoInmuActualNombre,'true','false') as estado from usosInmueblesVisitas uiv
                    inner join usosInmueblesActual uia on uia.usoInmuActualId = uiv.usoInmuActualId and uia.usoInmuActualEstado = 'A',usosInmueblesActual uia1
                    where uiv.usoInmuVisitaTipo = 'Predio' and uiv.visitaId = $visitaId group by uia1.usoInmuActualNombre order by uia1.usoInmuActualNombre";
            $parametros["usosPredio"] = $this->db->query($sql);
            $parametros["visitaUsoOtro2"] = $result[0]->visitaUsoOtro2;
            $parametros["visitaCaracCanios"] = $result[0]->visitaCaracCanios;
            $parametros["visitaCaracVallados"] = $result[0]->visitaCaracVallados;
            $parametros["visitaCaracServi"] = $result[0]->visitaCaracServi;
            $parametros["visitaCaracPuentes"] = $result[0]->visitaCaracPuentes;
            $parametros["visitaCaracOtros"] = $result[0]->visitaCaracOtros;
            $sql = "select cv.*,e.estadoPredNombre,u.unidadNombre from construccionesVisitas cv
                    inner join visitas v on v.visitaId = cv.visitaId
                    inner join unidades u on u.unidadId = cv.unidadId and u.unidadEstado = 'A'
                    inner join estadosPredios e on e.estadoPredId = cv.estadoPredId and e.estadoPredEstado = 'A'
                    where cv.construVisitaTipo = 'C' and cv.visitaId = $visitaId ";
            $parametros["construcciones"] = $this->db->query($sql);
            $sql = "select cv.*,e.estadoPredNombre,u.unidadNombre from construccionesVisitas cv
                    inner join visitas v on v.visitaId = cv.visitaId
                    inner join unidades u on u.unidadId = cv.unidadId and u.unidadEstado = 'A'
                    inner join estadosPredios e on e.estadoPredId = cv.estadoPredId and e.estadoPredEstado = 'A'
                    where cv.construVisitaTipo = 'A' and cv.visitaId = $visitaId ";
            $parametros["anexos"] = $this->db->query($sql);
            $sql = "select viaNombre as nombre from vias where viaEstado = 'A' order by viaNombre";
            $parametros["viasGen"] = $this->db->query($sql);
            $sql = "select estadoPredNombre as nombre from estadosPredios where estadoPredEstado = 'A' order by estadoPredNombre";
            $parametros["estadoPredGen"] = $this->db->query($sql);
            $sql = "select ev.* from elementosVisitas ev
                inner join visitas v on v.visitaId = ev.visitaId
                where ev.visitaId = $visitaId ";
            $parametros["elementos"] = $this->db->query($sql);
            $parametros["visitaMetodologiaAvaluo"] = $result[0]->visitaMetodologiaAvaluo;
            $parametros["visitaInvesEconomica"] = $result[0]->visitaInvesEconomica;
            $parametros["visitaConsideraciones"] = $result[0]->visitaConsideraciones;
            $sql = "select fotoVisitaPortada, visitaId, fotoVisitaOrden, fotoVisitaRuta, fotoVisitaNombre, fotoVisitaId from fotosVisitas
                    where fotoVisitaPortada <> 'Si' and visitaId = $visitaId order by fotoVisitaOrden,fotoVisitaNombre";
            $parametros["fotos"] = $this->db->query($sql);
            $sql = "select i.*,t.topografiaNombre from investigacionesVisitas i
                    inner join topografias t on t.topografiasId = i.topografiasId 
                    where i.visitaId = $visitaId order by t.topografiaNombre";
            $parametros["invesMercado"] = $this->db->query($sql);
            $sql ="select concat('Unidad ',@c:=@c+1) as titulo,c.construVisitaDescripcion,u.unidadNombre,c.construVisitaArea,c.construVisitaVetustez,d.devaluaVisitaVidaUtil,d.devaluaVisitaEdadPor,d.devaluaVisitaEstConserva,d.devaluaVisitaValRepo,d.devaluaVisitaPorDepreciacion,d.devaluaVisitaValDepreciacion,d.devaluaVisitaValDepreciado,d.devaluaVisitaValAdoptado from devaluacionVisita d
                    inner join construccionesVisitas c on c.construVisitaId = d.construVisitaId
                    inner join unidades u on u.unidadId = c.unidadId and u.unidadEstado = 'A',(select @c:=0) r
                    where c.construVisitaTipo = 'C' and c.visitaId = $visitaId
                    union
                    select concat('Anexo ',@a:=@a+1) as titulo,c.construVisitaDescripcion,u.unidadNombre,c.construVisitaArea,c.construVisitaVetustez,d.devaluaVisitaVidaUtil,d.devaluaVisitaEdadPor,d.devaluaVisitaEstConserva,d.devaluaVisitaValRepo,d.devaluaVisitaPorDepreciacion,d.devaluaVisitaValDepreciacion,d.devaluaVisitaValDepreciado,d.devaluaVisitaValAdoptado from devaluacionVisita d
                    inner join construccionesVisitas c on c.construVisitaId = d.construVisitaId
                    inner join unidades u on u.unidadId = c.unidadId and u.unidadEstado = 'A',(select @a:=0) r
                    where c.construVisitaTipo = 'A' and c.visitaId = $visitaId";
            $parametros["deprecia"] = $this->db->query($sql);
        } else {
            $parametros["result"] = "No se encontro información para la visita solicitada";
        }
        return $parametros;
    }

//fin public function infoGeneral($visitaId){
}

//fin class
?>
